import axios from 'axios'
import { Message, MessageBox } from 'element-ui'
// import router from "../router";
// import qs from 'qs'

//get方法封装，链接和参数分开的方式
export function requestGet(url, reqData) {
    return request({
        url: url,
        method: 'GET',
        param: reqData
    })
}

//post方法封装
export function requestPost(url, reqData) {
    return request({
        url: url,
        method: 'POST',
        data: reqData
    })
}

//post-form-data方法封装
export function requestPostWithFormData(url, reqData) {
    const formData = new FormData();
    Object.keys(reqData).forEach((key) => {
        formData.append(key, reqData[key]);
    });
    return request({
        url: url,
        method: 'POST',
        data: formData
    })
}

//终极方案
export function request(config) {

    //1.创建axios的实例
    const instance = axios.create({
        baseURL: '/jwwyt',
        timeout: 30000,
        responseType: 'json'
    })

    //2.axios的拦截器
    instance.interceptors.request.use(config => {
        return config;
    }, error => {
        console.log(error)
    })
    instance.interceptors.response.use(res => {
            switch (res.data.code) {
                case 200:
                    break;
                case 1009:
                    Message.error('子系统加载失败', '提示')
                    // setTimeout(function() {
                    //     if (localStorage.getItem("loginPath").indexOf("http") === 0) {
                    //         location.href = localStorage.getItem("loginPath")
                    //     } else {
                    //         router.replace({
                    //             path: localStorage.getItem("loginPath")
                    //         })
                    //     }
                    // }, 1)
                    break
                case 10000:
                    Message.error('子系统加载失败', '提示')
                    // setTimeout(function() {
                    //     if (localStorage.getItem("loginPath").indexOf("http") === 0) {
                    //         location.href = localStorage.getItem("loginPath")
                    //     } else {
                    //         router.replace({
                    //             path: localStorage.getItem("loginPath")
                    //         })
                    //     }
                    // }, 1)
                    break
                default:
                    MessageBox.alert('操作失败：' + res.data.msg, '提示', { type: 'error' })
                    break;
            }
            return res.data;
        }, error => {
            console.log(error);
            MessageBox.alert('服务器异常', '提示', { type: 'error' })
        })
        //3.发送真正的网络请求 本身返回值就是promise
    return instance(config);

}